package com.tesserate.timecontrol.clock;

import java.util.ArrayList;
import java.util.List;

public class Player {
	private long startTime;
	private long tempo;
	private int rodada;
	private double media;
	private long rapida;
	private long lenta;
	private List<Long> tempoPorRodada;
	
	private long tempoRodada = 0;
	private String milis;
	
	public Player(long startTime){
		this.startTime = startTime;
		this.rodada = 0;
		this.tempo = startTime;
		this.media = 0;
		this.rapida = 0;
		this.lenta = 0;
		
		this.setTempoPorRodada(new ArrayList<Long>());
	}
	
	public long getTempo() {
		return tempo;
	}
	public void setTempo(long tempo) {
		this.tempo = tempo;
	}
	public int getRodada() {
		return rodada;
	}
	public void setRodada(int rodada) {
		this.rodada = rodada;
	}
	public double getMedia() {
		return media;
	}
	public void setMedia(double media) {
		this.media = media;
	}
	public long getRapida() {
		return rapida;
	}
	public void setRapida(long rapida) {
		this.rapida = rapida;
	}
	public long getLenta() {
		return lenta;
	}
	public void setLenta(long lenta) {
		this.lenta = lenta;
	}

	public void update(long elapsedTime){
		this.tempo -= elapsedTime;
		this.tempoRodada += elapsedTime;
		if(this.tempo < 0) this.tempo = 0;
	}
	
	public void passaAVez(){
		rodada += 1;
		media = (startTime - tempo) / rodada;
		getTempoPorRodada().add(tempoRodada);
		
		if(tempoRodada > lenta){
			lenta = tempoRodada;
		}
		if(tempoRodada < rapida){
			rapida = tempoRodada;
		}
		
		tempoRodada = 0;
	}
	
	public String getMilis(){
		milis = (int)tempo+"";
		if(tempo == 0)
			milis = "000";
		String mili;
		//todo rever
		try{
			mili = milis.substring(milis.length()-3, milis.length());
		}catch (StringIndexOutOfBoundsException e){
			mili = "000";
		}
		return mili;
	}

	public void setTempoPorRodada(List<Long> tempoPorRodada) {
		this.tempoPorRodada = tempoPorRodada;
	}

	public List<Long> getTempoPorRodada() {
		return tempoPorRodada;
	}
	

}
